Databases are used to store information for an innumerable number of applications, including various commercial, industrial, technical, scientific and educational applications. As the reliance on information increases, both the volume of information stored in most databases, as well as the number of users wishing to access that information, likewise increases. Moreover, as the volume of information in a database, and the number of users wishing to access the database, increases, the amount of computing resources required to manage such a database increases as well.
Database management systems (DBMS's), which are the computer programs that are used to access the information stored in databases, therefore often require tremendous resources to handle the heavy workloads placed on such systems. As such, significant resources have been devoted to increasing the performance of database management systems with respect to processing searches, or queries, to databases.
Improvements to both computer hardware and software have improved the capacities of conventional database management systems. For example, in the hardware realm, increases in microprocessor performance, coupled with improved memory management systems, have improved the number of queries that a particular microprocessor can perform in a given unit of time. Furthermore, the use of multiple microprocessors and/or multiple networked computers has further increased the capacities of many database management systems.
From a software standpoint, the use of relational databases, which organize information into formally-defined tables consisting of rows and columns, and which are typically accessed using a standardized language such as Structured Query Language (SQL), has substantially improved processing efficiency, as well as substantially simplified the creation, organization, and extension of information within a database. Furthermore, significant development efforts have been directed toward query “optimization”, whereby the execution of particular searches, or queries, is optimized in an automated manner to minimize the amount of resources required to execute each query.
Through the incorporation of various hardware and software improvements, many high performance database management systems are able to handle hundreds or even thousands of queries each second, even on databases containing millions or billions of records. However, further increases in information volume and workload are inevitable, so continued advancements in database management systems are still required.
There are currently graphical user interfaces that map a database and its relations so that a database administrator can graphically view the database objects. A skilled administrator is able to identify characteristics about the database from this map and potentially improve the structure and arrangement of the database. However, when a database becomes large, such as, for example, having hundreds or thousands of objects, the graphical map of the database and its relations becomes so complex and crowded so as to be of minimal use to the administrator.
In particular, in a current graphical user interface, selection of an object to find its relations results in a search being performed for each other object that relates to that object. The search, however, is iterative, resulting in searches being performed for the relations for the objects found in the initial result, and so on, until all relations that ultimately relate to the original object are found. Indeed, in situations where a database is normalized, a search of relations on an object will typically return every object in the database.
Display of all of the relations to a particular object in such a scenario is often so complex and crowded that it is difficult, if not impossible, to navigate. Furthermore, the more objects and relations that exist, the longer it takes to perform the search and generate the display.
Accordingly, there remains the need in current database systems for a graphical tool that presents database information in a format that is useful to a database administrator or other user.